package cn.wjh.business.service;

import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Map;

import cn.wjh.business.domain.Translate;
import cn.wjh.business.domain.vo.TranslateVo;
import cn.wjh.business.domain.vo.YouDaoTranslateResultVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;

/**
 * 翻译Service接口
 *
 * @author jiraWu
 * @date 2023-11-30
 */
public interface ITranslateService extends IService<Translate> {
    /**
     * 查询翻译
     *
     * @param translateId 翻译主键
     * @return 翻译
     */
    public Translate selectTranslateByTranslateId(Long translateId);

    /**
     * 查询翻译列表
     *
     * @param translate 翻译
     * @return 翻译集合
     */
    public List<Translate> selectTranslateList(Translate translate);

    /**
     * 新增翻译
     *
     * @param translate 翻译
     * @return 结果
     */
    public int insertTranslate(Translate translate);

    /**
     * 修改翻译
     *
     * @param translate 翻译
     * @return 结果
     */
    public int updateTranslate(Translate translate);

    /**
     * 批量删除翻译
     *
     * @param translateIds 需要删除的翻译主键集合
     * @return 结果
     */
    public int deleteTranslateByTranslateIds(List<Long> translateIds);


    /**
     * 有道翻译翻译
     */
    Map<String, String> translateYouDao(TranslateVo translate);

    /**
     * 获取有道翻译的结果
     */
    YouDaoTranslateResultVo getYouDaoTranslateResult(TranslateVo translate, String to) throws JsonProcessingException, NoSuchAlgorithmException;

    /**
     * 保存翻译版本
     */
    boolean saveTranslationVersion(Translate translate);


    /**
     * 获取顶级翻译版本版本
     */
    List<Translate> topVersionList(Translate translate);

    /**
     * 获取一个有道翻译结果
     */
    String translateYouDaoOneResult(TranslateVo translate);
}
